package com.blb.community.mapper;

import com.blb.community.entity.SysDictData;
import com.blb.community.entity.SysPost;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.blb.community.entity.SysUserPost;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 岗位信息表 Mapper 接口
 * </p>
 *
 * @author 帅帅
 * @since 2022-07-02
 */

public interface SysPostMapper extends BaseMapper<SysPost> {


    /**
     * 查询所有
     */
    List<SysPost> getAll();

    /**
     * 查询岗位信息
     * @param post 岗位信息
     * @param nowPage 当前页
     * @param pageSize 页面数据大小
     * @return 数据集合
     */
    List<SysPost> selectPostList(@Param("post")SysPost post, @Param("nowPage")int nowPage, @Param("pageSize")int pageSize);

    /**
     * 查询岗位分配情况
     * @param postId 岗位ID数组
     * @return 用户集合
     */
    List<SysUserPost> selectUserByPostId(Integer postId);

    /**
     * 修改岗位信息
     * @param post 岗位信息
     * @return 结果
     */
    int updatePost(SysPost post);

    /**
     * 新增岗位信息
     * @param post 岗位信息
     * @return 结果
     */
    int insertPost(SysPost post);

    /**
     * 通过岗位ID删除岗位信息
     * @param postId
     * @return
     */
    int deletePostById(Integer postId);

    /**
     * 批量删除
     * @param postIds 需要删除的岗位ID数组
     * @return 结果
     */
    int deletePostByIds(Integer[] postIds);

    /**
     * 查询状态
     * @param dictId 字典主键
     * @return
     */
    List<SysDictData> getDict(Long dictId);

    /**
     * 校验岗位名称
     * @param postName 岗位名称
     * @return 结果
     */
    SysPost checkPostName(String postName);

    /**
     * 校验岗位编码
     * @param postCode 岗位名称
     * @return 结果
     */
    SysPost checkPostCode(String postCode);

    /**
     * 根据id批量查询   导出
     * @param postIds
     * @return
     */
    List<SysPost> selectByIds(@Param("postIds") ArrayList<Integer> postIds);

    /**
     * 导入添加集合
     * @return
     */
    int batchAddPost(List<SysPost> list);
}
